/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ctrl.sys;

import java.util.Collections;
import javax.swing.JPanel;
import view.ihm.Action1;
import view.ihm.Action2;
import ctrl.jeu.Chaise;
import ctrl.jeu.Mise;
import ctrl.jeu.Place;
import ctrl.jeu.Table;

/**
 *
 * @author Willy
 */
public class MomentUser extends Thread{
    Place PlaceAParcourir;
    Place Main;
    JPanel act;
    Table tb;
    Chaise c;
    Thread th=null;
    // constructeur
    public MomentUser(Table tb, Place prc)
    {
        this.tb=tb;
        this.PlaceAParcourir=prc;
        this.Main=tb.getPlaceMain();
        // calcule la valeur a completer
        Mise mise_max=Collections.max(tb.getMises());
        Mise ma_mise=tb.getMises(prc);
        float Rest=mise_max.getMontantTotal();
        if(ma_mise!=null) Rest=mise_max.getMontantTotal()-ma_mise.getMontantTotal();
        if(Rest!=0)
        {
            act=new Action1(this.tb,Rest);
        }
        else
        {
            act=new Action2(this.tb);
        }
        act.setBounds(330,530, 300, 200);
        tb.Fenetre.add(act);
    }

    @Override
    public void run() {
        c=tb.getChaises(PlaceAParcourir.getIdChaise());
            c.getPan().setEnabled(true);
            c.getCompteur().setEnabled(true);

            if(Main.equals(c.getLieu()))
            {
                act.setVisible(true);
            }else 
            {
                act.setVisible(false);
            }
            tb.Fenetre.repaint();
            //AudioPlayer play=null;
            
            if(c.equals(tb.getChaises(tb.getPlaceMain().getIdChaise())))
            try{
                //play=new AudioPlayer(new File(getClass().getResource("/willardpoker/snd/wait.wav").toURI()));
                //th = new Thread(play);
                //play.init();
                //th.start();
            }catch(Exception ex) {ex.printStackTrace();}
            for(int k=1;k<=Const.TEMPS_JOUEUR/100;k++)
            {
                c.getCompteur().setValue(k);
                c.getCompteur().repaint();
                try {
                    Thread.sleep(100);
                }catch(Exception e) {}
            }
            if(th!=null) if(th.isAlive()) th.stop();
            c.getCompteur().setValue(0);
            c.getCompteur().setEnabled(false);

            if(c.equals(tb.getChaises(tb.getPlaceMain().getIdChaise())))
            {
                Demande as=new Demande(Const.FOLD,0,tb.getId(),tb.getPlaceMain().getIdChaise());
                new ClientSend(tb.getClientReseau().getClient(), as).start();
            }
    }

    @Override
    public void destroy() {
        if(th!=null) if(th.isAlive()) th.stop();
        Chaise ci;
        for(int i=0;i<tb.getChaises().size();i++)
        {
            ci=tb.getChaises().get(i);
            if(ci!=null)
            {
                ci.getCompteur().setValue(0);
                ci.getPan().setEnabled(false);        
            }
        }
        act.setVisible(false);
        tb.Fenetre.remove(act);
        act=null;
        this.stop();
    }


    // main
    public static void main(String[] args)
    {

    }

}
